package com.vpclub.dao;

import com.vpclub.bean.Customer;

import java.sql.Connection;
import java.sql.Date;
import java.util.List;

/**
 * @author : leimingchao
 * @version V1.0
 * @Project: jdbc
 * @Package com.vpclub.dao
 * @Description: 此接口用于规范针对于customers表的常用操作
 * @date Date : 2021年05月30日 2:02
 */
public interface CustomerDao {

    /**
     * 将customer对象添加到数据库中
     * @param connection
     * @param customer
     */
    void insert(Connection connection, Customer customer);

    /**
     * 针对指定的id，删除表中的一条记录
     * @param connection
     * @param id
     */
    void deleteById(Connection connection, Integer id);

    /**
     * 针对内存中的customer对象，去修改数据表中的指定的记录
     * @param connection
     * @param customer
     */
    void update(Connection connection, Customer customer);

    /**
     * 根据指定的id查询得到的对应的Customer对象
     * @param connection
     * @param id
     */
    Customer getCustomerById(Connection connection, Integer id);

    /**
     * 查询表中的所有记录构成的集合
     * @param connection
     * @return
     */
    List<Customer> getAll(Connection connection);

    /**
     * 返回数据列表中的数据的条目数
     * @param connection
     * @return
     */
    Long getCount(Connection connection);

    /**
     * 返回数据表中最大的生日
     * @param connection
     * @return
     */
    Date getMaxBirth(Connection connection);
}
